             package com.java.diagnostics.visualizer.factory;
             
             import com.java.diagnostics.visualizer.data.DataPoint;
             import com.java.diagnostics.visualizer.data.StructuredData;
             import com.java.diagnostics.visualizer.data.StructuredDataBuilder;
             import com.java.diagnostics.visualizer.data.TupleDataBuilder;
             import com.java.diagnostics.visualizer.data.UnstructuredData;
             import com.java.diagnostics.visualizer.data.UnstructuredDataBuilder;
             import com.java.diagnostics.visualizer.data.axes.AxisPair;
             import com.java.diagnostics.visualizer.data.axes.XAxis;
             import com.java.diagnostics.visualizer.data.axes.XDataAxis;
             import com.java.diagnostics.visualizer.data.axes.YAxis;
             import com.java.diagnostics.visualizer.data.axes.YDataAxis;
             import com.java.diagnostics.visualizer.util.Messages;
             import java.io.PrintStream;
             import java.util.Map;
             
             public abstract class DataFactory
             {
               private static final String DATA_FACTORY_IMPL_CLASSNAME = "com.java.diagnostics.visualizer.impl.factory.DataFactoryImpl";
               protected String category;
               public static final String HIDDEN = Messages.getString("DataFactory.hidden");
               
               private static Class clazz = null;
               
               public static DataFactory getFactory(String category) {
                 try {
                   if (clazz == null) {
                     clazz = Class.forName("com.java.diagnostics.visualizer.impl.factory.DataFactoryImpl");
                   }
                   
                   DataFactory factory = (DataFactory)clazz.newInstance();
                   factory.setCategory(category);
                   return factory;
                 }
                 catch (Exception e)
                 {
                   System.out.println("Could not instantiate the data factory. Make sure the com.java.diagnostics.visualizer.impl plug-in is on the classpath. Exception: " + e); }
                   return null;
               }
               
               private void setCategory(String category)
               {
                 this.category = category;
               }
               
               public abstract XAxis createXAxis(String paramString1, String paramString2, String paramString3);
               
               public abstract YAxis createYAxis(String paramString1, String paramString2, String paramString3);
               
               public abstract YAxis createYAxis(String paramString1, String paramString2, String paramString3, int paramInt);
               
               public abstract AxisPair createAxisPair(XDataAxis paramXDataAxis, YDataAxis paramYDataAxis);
               
               
                
               
               public abstract StructuredData createStructuredData(String paramString1, String paramString2, Map paramMap);
               
               public abstract StructuredDataBuilder createStructuredData(String paramString1, String paramString2);
               
               public abstract UnstructuredDataBuilder createUnstructuredData(String paramString1, String paramString2);
               
               
               
                
               public abstract UnstructuredData createUnstructuredData(String paramString1, String paramString2, String paramString3);
               
               public abstract TupleDataBuilder createTupleData(String paramString1, String paramString2, AxisPair paramAxisPair, DataPoint[] paramArrayOfDataPoint);
               
               public abstract TupleDataBuilder createTupleData(String paramString1, String paramString2, AxisPair paramAxisPair);
               
               public abstract TupleDataBuilder createTupleData(String paramString1, String paramString2, XDataAxis paramXDataAxis, YDataAxis paramYDataAxis);
             }


